package cn.com.anypay.manager.dto.wechat;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.List;

/**
 * 微信获取用户信息API响应模型
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class WeChatUserInfoResponse extends WeChatApiResponse {
    
    /**
     * 用户OpenID
     */
    @JsonProperty("openid")
    private String openId;
    
    /**
     * 用户昵称
     */
    @JsonProperty("nickname")
    private String nickname;
    
    /**
     * 性别：1-男，2-女，0-未知
     */
    @JsonProperty("sex")
    private Integer sex;
    
    /**
     * 省份
     */
    @JsonProperty("province")
    private String province;
    
    /**
     * 城市
     */
    @JsonProperty("city")
    private String city;
    
    /**
     * 国家
     */
    @JsonProperty("country")
    private String country;
    
    /**
     * 头像URL
     */
    @JsonProperty("headimgurl")
    private String headImgUrl;
    
    /**
     * 用户特权信息
     */
    @JsonProperty("privilege")
    private List<String> privilege;
    
    /**
     * UnionID（可选）
     */
    @JsonProperty("unionid")
    private String unionId;
    
    /**
     * 语言
     */
    @JsonProperty("language")
    private String language;
    
    /**
     * 转换为WeChatUserInfo对象
     */
    public WeChatUserInfo toUserInfo() {
        return WeChatUserInfo.builder()
                .openId(openId)
                .unionId(unionId)
                .nickname(nickname)
                .headImgUrl(headImgUrl)
                .sex(sex)
                .country(country)
                .province(province)
                .city(city)
                .language(language)
                .privilege(privilege)
                .build();
    }
}